Software applications periodically have new version releases with improved features. Upgrading a software application to a new version may involve converting user data from an existing data schema to a new data scheme used by the new version. In some cases, the volume of user data may be so great that upgrade operations may cause a device or network to become unavailable for extended periods of time. For example, a server-based software application may have user data on the order of terabytes, which may take days or even weeks to upgrade to a new data schema. Mission-critical business systems or high-availability systems may find such extended periods of down time unacceptable. Consequently, improvements to upgrade techniques may be needed to solve these and other problems.